'''
@-*- coding: utf-8 -*-
@ python:python 3.9
@ 创建人员:allen
@ 创建时间:2024/8/22
'''
from opcua import Client


def browse_nodes(node, depth=0, max_depth=2):
    """
    递归浏览OPC UA节点。

    参数:
    - node: 当前节点
    - depth: 当前深度
    - max_depth: 最大深度

    返回:
    - 打印节点信息
    """
    if depth > max_depth:
        return

    print("  " * depth + f"节点: - 名称: {node.get_browse_name()[0].Name}")

    for child_node in node.get_children():
        browse_nodes(child_node, depth + 1, max_depth)


# 创建一个客户端并连接到OPC UA服务器
client = Client('opc.tcp://192.168.0.1:4840')
client.connect()
#
# # 选择一个服务器（通常，默认服务器是"Root"）
server = client.get_server_node()
#
# 从根节点开始浏览
browse_nodes(server.get_browse_name(), max_depth=3)

# 关闭客户端连接
client.disconnect()
client.close()